package com.authine.cloudpivot.ext.service;

import com.authine.cloudpivot.ext.dto.api.TempOrderReceipt;
import com.authine.cloudpivot.ext.vo.OrderResultModel;
import com.authine.cloudpivot.ext.vo.TempOrderReceiptVo;
import com.authine.cloudpivot.ext.vo.zhende.PushOrderModel;
import com.authine.cloudpivot.ext.vo.zhende.PushOrderUpdateModel;
import com.authine.cloudpivot.ext.vo.zhende.ZhenDeReceiptModel;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 调用振德相关服务
 * @Author: 李国祥
 * @Date: 2020/4/23 11:39
 * @Version 1.0
 */
public interface ZhendeService {

    /**
     * 下订单
     * @param pushOrderModel
     * @return
     */
    String pushOrder(PushOrderModel pushOrderModel);

    /**
     * 下订单后修改
     * @param pushOrderUpdateModelList
     * @return
     */
    String pushOrderUpdate(List<PushOrderUpdateModel> pushOrderUpdateModelList);

    /**
     * 收货
     * @param purchaseNumber
     * @return
     */
    String receiptOrderPush(String purchaseNumber);

    /**
     * 查询振德商品收货状态
     * @param purchaseNumber
     * @return
     */
    ZhenDeReceiptModel receiptOrderPush1(String purchaseNumber);

    /**
     * 定时任务回调批量收货
     * @param zhenDeReceiptModel
     * @return
     */
    TempOrderReceiptVo zhenDeGoodsReceiptBatch(ZhenDeReceiptModel zhenDeReceiptModel);

    /**
     * xml转换成Object
     * @param xml
     * @return
     */
    OrderResultModel XmlToObject(String xml);

    /**
     * 获取振德所有待收货商品的订单ERP PO
     *
     * @return 待收货状态的ERP PO
     */
    List<String> getErpPoByZhenDeToReceive();

    /**
     * 根据erppo和客户物料查询订单商品id
     *
     * @return
     */
    List<Map<String, Object>> listOrderGoodsByErpPOSku(String erpPo, Set<String> customerSku);
}
